package com.创建者模式.建造者模式;

/**
 * 建造者（Builder）模式
 * 设计原理：它是将一个复杂的对象分解为多个简单的对象，然后一步一步构建而成。它将变与不变相分离，即产品的组成部分是不变的，但每一部分是可以灵活选择的。
 * 构成：产品、抽象建造者、具体建造者、指挥者等 4 个要素构成，现在我们来分析其基本结构和实现方法。
 * 优点：
 * 封装性好，构建和表示分离。
 * 扩展性好，各个具体的建造者相互独立，有利于系统的解耦。
 * 客户端不必知道产品内部组成的细节，建造者可以对创建过程逐步细化，而不对其它模块产生任何影响，便于控制细节风险。
 * 缺点：
 * 品的组成部分必须相同，这限制了其使用范围。
 * 如果产品的内部变化复杂，如果产品内部发生变化，则建造者也要同步修改，后期维护成本较大。
 * @author chenhs
 * @date 2020/10/12
 */
public class Test {
	public static void main(String[] args) {
		
		BuilderA builderA = new BuilderA();
		Director directorA = new Director(builderA);
		directorA.getProduct();
		BuilderB builderB = new BuilderB();
		Director directorB = new Director(builderB);
		directorB.getProduct();
	}
}
